function JavaParser(source){
  this.initialize(source);
}
$JSI.extend(JavaParser,SourceParser);
//ECMAParser.prototype = new SourceParser();

JavaParser.prototype.keywordsRegexp = SourceParser.buildKeywordsRegexp(
["@interface","abstract","assert","boolean","break","byte","case","catch","char","class","const",
			"continue","default","do","double","else","enum","extends",
			"false","final","finally","float","for","goto","if","implements","import",
			"instanceof","int","interface","long","native","new","null",
			"package","private","protected","public","return",
			"short","static","strictfp","super","switch","synchronized","this","throw","throws","true",
			"transient","try","void","volatile","while"]
);

JavaParser.prototype.partitionsRegexp = SourceParser.buildPartitionsRegexp(
[
      "/\\*(?:[^\\*]|\\*[^/])*\\*/"      //muti-comment
      ,"//.*$"                    //single-comment
      ,"/(?:\\\\.|[^/\\n\\r])+/"  //regexp
      ,'"(?:\\\\.|[^"\\n\\r])*"'  //string
      ,"'(?:\\\\.|[^'\\n\\r])*'"  //string : char
      ,"\\b([\\d]+(\\.[\\d]+)?|0x[a-fA-F0-9]+)\\b"//number
      ,"@[\\u0024\\w]+\\b"
      //,"^\\s*#.*"             //process
]);